package com.zyh.homework;

import java.util.Scanner;

public class Test9 {
    public static void main(String[] args) {
        /*
        分析以下需求，并用代码实现
	    1.键盘录入6个int类型的数据存数数组arr中
	    2.将arr数组中的内容反转
	    3.将翻转后的数组角标为奇数的互相交换 1和3换, 3和5换,以此类推
	    4.最后将数组最后一个角标为奇数的元素 和数组中第一个角标为奇数的元素交换
	    5.打印最终的数组(实现了1-4步之后的数组)
	    6.如：用户输入的6个int数字为[1,2,3,4,5,6],最后输出的结果为[6, 5, 4, 1, 2, 3]
	    [1,2,3,4,5,6]
	    [6,5,4,3,2,1]
	    [6,3,4,1,2,5]
	     0 1 2 3 4 5
	    [6,5,4,1,2,3]
         */
        int[] arr = new int[6];
        for (int i = 0; i < 6; i++) {
            System.out.println("请输入第" + (i + 1) + "个数据：");
            arr[i] = new Scanner(System.in).nextInt();
        }
        returnArray(arr);
        printArray(arr);
        System.out.println();
//        将翻转后的数组角标为奇数的互相交换 1和3换, 3和5换,以此类推
        for (int j = 0; j < arr.length; j++) {
            if (j % 2 != 0) {
                if (j + 2 > arr.length) {
                    break;
                }
                int temp = arr[j];
                arr[j] = arr[j + 2];
                arr[j + 2] = temp;
            }
        }
        printArray(arr);
        System.out.println();
//        最后将数组最后一个角标为奇数的元素 和数组中第一个角标为奇数的元素交换
//        第一个奇数角标就是1
//        [1,2,3,4,5,6,7]
//         0 1 2 3 4 5 6
        for (int i = 0; i < arr.length; i++) {
            if (arr.length % 2 == 0) {
//                数组长度为偶数,那么最后一个奇数角标就是arr.length-1
                int temp = arr[1];
                arr[1] = arr[arr.length - 1];
                arr[arr.length - 1] = temp;
                break;
            } else if (arr.length % 2 != 0) {
//                说明数组长度为奇数，最后一个奇数下标是arr.length-2;
                int temp = arr[1];
                arr[1] = arr[arr.length - 2];
                arr[arr.length - 2] = temp;
                break;
            }
        }
        printArray(arr);
    }
    //    反转数组
    public static void returnArray(int[] arr) {
        for (int start = 0, end = arr.length - 1; start <= end; start++, end--) {
            int temp = arr[start];
            arr[start] = arr[end];
            arr[end] = temp;
        }
    }

    //    漂亮打印数组
    public static void printArray(int[] arr) {
        System.out.print("[");
        for (int i = 0; i < arr.length; i++) {
            if (i == arr.length - 1) {
                System.out.print(arr[i]);
            } else {
                System.out.print(arr[i] + ",");
            }
        }
        System.out.print("]");
    }

}
